package com.atguigu.spring.annotation.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import com.atguigu.spring.annotation.dao.UserDao;
import com.atguigu.spring.annotation.entities.User;
import com.atguigu.spring.annotation.service.UserService;

@Service("userService")
public class UserServiceImpl implements UserService {


	/*
	 * 自动装配的规则：
	 * 	1.根据属性的类型实现自动装配
	 *  2.以属性名作为id从IOC容器中寻找实现自动装配
	 *  3.如果通过1和2都不能实现自动装配，我们可以通过@Qualifier的value属性来指定id来实现自动装配，value属性名可以省略
	 */
//	@Qualifier(value="userDao1")
	@Qualifier("userDao2")
	@Autowired
	private UserDao userDao;
	
	/*
	 * 默认情况下，添加了@Autowired注解的属性必须注入成功，否则会抛出异常，
	 * 我们可以通过设置该注解中的required属性值为false告诉Spring该属性不是必须的
	 */
	@Autowired(required=false)
	private User user;
	
	@Override
	public void saveUser() {
		//调用UserUao中保存用户的方法
		userDao.saveUser();
	}

}
